Der Datenbankentwickler kann die Gültigkeit (Validität) einer Benutzereingabe auf zwei Arten prüfen: Einfachere Prüfungen kann er durch einen Ausdruck in der Eigenschaft Gültigkeitsregel eines Tabellenfelds, einer Tabellenzeile (eines Datensatzes) oder eines Steuerelements definieren. Für komplexere Prüfungen programmiert er eine Ereignisprozedur.
Für ein Beispiel einer Gültigkeitsregel markieren Sie das Feld TxfBuchstabenpräfix des Unterformulars Subfrm Buchstabenalternativen, drücken »Alt/Enter und lesen den Wert der Eigenschaft Gültigkeitsregel. Der folgende Ausschnitt aus der Eigenschaftenliste zeigt die Gültigkeitsregel und -meldung für die Eingabe des Buchstabenpräfix einer Zuordnungsalternative:

Die Gültigkeitsregel >= "A" Und <= DomMax("Buchstabenpräfix";"[QuizBUCHSTABEN_ALTERNATIVEN]"; "Fragenschlüssel=" & [Fragenschlüssel]) garantiert, dass ein im Textfeld TxfBuchstabenpräfix gespeichertes Zeichen ...
grösser oder gleich "A" ist
das höchste der im entsprechenden Datensatz der Tabelle QuizBUCHSTABEN_ALTERNATIVEN gespeicherten Buchstabenpräfices nicht übersteigt. DomMax(Ausdr; Domäne[; Kriterium]) sucht den höchsten Wert in einer Domäne. Ausdr ist ein Feld einer Domäne (Tabelle oder Abfrage), und das optionale Kriterium entspricht in der Regel dem WHERE-Teil einer SQL-Anweisung.
Jeder Gültigkeitsregel können Sie eine Gültigkeitsmeldung zuordnen, welche die voreingestellte Meldung (im wesentlich die Anzeige der Gültigkeitsregel) ersetzt.
Flexiblere Gültigkeitsprüfungen gestatten selbst programmierte VBA-Prozeduren. In einer Mehrfachwahlaufgabe darf der Benutzer zum Beispiel höchstens eine der vier Alternativen wählen. Im folgenden Bildschirmausschnitt macht den Benutzer keine Gültigkeitsprozedur darauf aufmerksam, wegen dass er nur ein Kontrollkästchen anklicken darf:

Die folgende Gültigkeitsprozedur zeigt hingegen nach einem zweiten Markierungsversuch die Fehlermeldung "Markieren Sie nur eine Alternative". Eine Prozedur. die einen Klick auf ein zweites Kontrollkästchen verhindert, muss den Benutzer allerdings eine bestehende Markierung löschen lassen, ohne dass er eine Fehlermeldung erhält. Der folgende Entwurfscode prüft deshalb die Gültigkeit nur nach einem Klick auf ein unmarkiertes Kontrollkästchen:
Verhindere, dass mehr als eine Mehrfachalternative markiert wird Falls der Klick das Kontrollkästchen markiert und SCORESMC bereits eine markierte Alternative enthält Warne den Benutzer Mache die Markierung rückgängig sonst Aktualisiere SCORESMC
Die VBA-Implementation des Entwurfscode verwendet die Funktion DCount. Diese sucht die Zahl der markierten Alternativen (der Alternativen mit dem Wert -1 des Felds Benutzerlösung) der laufenden Mehrfachwahlfrage in der Tabelle SCORESMC. Falls das Ergebnis > 0 ist, erscheint eine Fehlermeldung.
'--- Prüfe, ob bereits eine Mehrfachalternative markiert ist Private Sub KkBenutzerlösung_Click() '-- Prüfe n i c h t , falls der Klick eine Markierung aufhebt ' (Vier unmarkierte Alternativen sind gültig) If [KkBenutzerlösung] = True Then 'Markierung gesetzt If DCount( _ "[Fragenschlüssel]", _ "SCORESMC", _ "[Fragenschlüssel]=[Forms]![FrmMehrfachwahl]![TxfFragenschlüssel]" & _ " AND [Benutzerlösung]=-1") > 0 _ Then MsgBox "Markieren Sie nur e i n e Alternative" [KkBenutzerlösung] = False End If Else 'Aktualisiere die aufgehobene Markierung in SCORESMC '(Sonst würde erst das Verlassen des laufenden Datensatzes aktualisieren) Me.Refresh End If End Sub
Fallbeispiel
einer Gültigkeitsprüfung: Matrikelnummer
Testing
und Debugging (Veranschaulichung an einem Beispiel)